home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 412_01 / readme < prev   
Encoding:
Text File  |  1994-02-09  |  4.3 KB  |  118 lines

  1. =============================================================================
  2.                         C++ SEARCH CLASS LIBRARY
  3.  
  4.                      Copyright (c) Peter M. Bouthoorn
  5.  
  6.                   ICCE, Groningen University, Netherlands
  7. =============================================================================
  8.  
  9.  
  10. COPYRIGHTS
  11. ==========
  12.  
  13. You're free to use, modify and distribute this software, as long as you
  14. don't pretend you wrote it all by yourself :-), i.e., as long as my name
  15. gets mentioned.
  16. If you like this software or find any bugs or other problems I would like
  17. to hear about it.
  18.  
  19.  
  20. DESCRIPTION
  21. ===========
  22.  
  23. The search class library is a software package I wrote during an intership.
  24. It is meant to be used as a tool for developing problem solving software.
  25. Basically, the library offers the programmer a set of search algorithms that
  26. may be used to solve all kind of different problems. The idea is that when
  27. developing problem solving software the programmer should be able to 
  28. concentrate on the representation of the problem to be solved and should
  29. not need to bother with the implementation of the search algorithm that will be
  30. used to actually conduct the search. This idea has been realized by the
  31. implementation of a set of search classes that may be incorporated in other
  32. software through C++'s features of derivation and inheritance.  The following
  33. search algorithms have been implemented:
  34.  
  35.     - depth-first tree and graph search.
  36.     - breadth-first tree and graph search.
  37.     - uniform-cost tree and graph search.
  38.     - best-first search.
  39.     - bidirectional depth-first tree and graph search.
  40.     - bidirectional breadth-first tree and graph search.
  41.     - AND/OR depth tree search.
  42.     - AND/OR breadth tree search.
  43.  
  44. Using one of these search methods in your own programs is just a matter of
  45. deriving a class from the desired search class and filling in the necessary
  46. parts.
  47. Turning the representation of the problem into actual source code is also made
  48. easier because the library demands that certain functions be used (these 
  49. - virtual - functions are called by several routines in the search library),
  50. which helps standardizing this process.
  51.  
  52. Although this package is meant as a tool for developing problem solving 
  53. software it is not meant exclusively for programmers that are familiar with
  54. the concept of problem representation and search techniques. The document
  55. accompanying this package first describes (though condensed) the theory of
  56. problem solving in AI and next explains how the search class library must be
  57. used. Furthermore, as the source code is richly commented and as also some
  58. demo programs are included the package should also prove useful to people that
  59. want to get acquainted with the subject.
  60.  
  61.  
  62.  
  63. COMPILING
  64. =========
  65.  
  66. There are two kinds of makefiles present: one for BCC (this is the
  67. standard makefile), but it should be easy to modify it for other compilers,
  68. and another for GCC under UNIX.
  69. When compiling with MSC you may want to use the define -DMSC, this is to
  70. solve some problems concerning the different format of the _set_new_handler()
  71. function that is used by this compiler.
  72. When compiling under UNIX you must first rename all .cpp files to .cc.
  73. Demo programs that make use of the search class library are in /demos, they
  74. must must be made seperately from the other sources.
  75.  
  76.  
  77. DOCUMENTATION
  78. =============
  79.  
  80. Documentation is in directory /doc. The documentation comes in three
  81. formats:
  82.  
  83.     - search.tex: latex.
  84.     - search.dvi: device independent output.
  85.     - search.ps : postscript.
  86.  
  87. In these docs you'll find a short introduction to the theory of
  88. problem-solving in AI and an explanation of how the search library must
  89. be used.
  90.  
  91.  
  92. SOURCE CODE
  93. ===========
  94.  
  95. File names (in directory /src/) starting with 'g' denote graph
  96. searching routines and those starting with 't' denote tree searching
  97. routines.
  98. I feel that the source is a bit overcommented, but I hope this
  99. enhances the instructional value of the package (ahem).
  100.  
  101.  
  102. NOTES
  103. =====
  104.  
  105. Note that because some routines in the search library make use of recursion
  106. (namely, the routines that are used to print the solution of the problem)
  107. it may be necessary to increase the stack size when linking in the library
  108. (hasn't happened to me so far - just compile everything under UNIX :-).
  109.  
  110.  
  111. Peter Bouthoorn
  112. Jan Steenstr 12
  113. 9312 PV Nietap
  114. The Netherlands
  115.  
  116. peter@icce.rug.nl,
  117. or: peter@freedom.nmsu.edu (thanks Jeff!)
  118.